package com.ithinkstudio.jeez.dao;

import java.io.Serializable;
import java.util.List;

/**
 * 共公DAO方法
 * @param <T>
 * @author felix
 */
public interface IBaseRepository<T> {

    /**
     * 添加
     * @param model
     */
    void insert(T model);

    /**
     * 修改
     * @param model
     */
    void update(T model);

    /**
     * 删除
     * @param model
     */
    void delete(T model);

    /**
     * 删除
     * @param key
     */
    void delete(Serializable key);

    /**
     * 根据ID查询
     * @param key
     * @return
     */
    T findById(Serializable key);

    /**
     * 根据hql查询集合
     * @param hql
     * @param args
     * @return
     */
    List<T> list(String hql, Object[] args);
}
